// 数组中有一个数字出现的次数超过数组长度的一半，请找出这个数字。

 

// 你可以假设数组是非空的，并且给定的数组总是存在多数元素。

#include<bits/stdc++.h>
using namespace std;

// 哈希表

// 执行用时：
// 20 ms
// , 在所有 C++ 提交中击败了
// 56.37%
// 的用户
// 内存消耗：
// 18.3 MB
// , 在所有 C++ 提交中击败了
// 53.37%
// 的用户


class Solution {
public:
    int majorityElement(vector<int>& nums) {
        unordered_map<int,int> hash;
        int len = nums.size();
        for(int i=0;i<len;++i){
            if(hash.count(nums[i])){
                ++hash[nums[i]];
                if(hash[nums[i]]>len/2){
                    return nums[i];
                }
            }
            else{
                hash[nums[i]]=1;
            }
        }
        return nums[0];
    }
};